﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Sistema_Totem.Presentacion.Contrato.Requerimientos;
using Sistema_Totem.Presentacion.Presentador.Requerimientos;
using System.Web.SessionState;
using Sistema_Totem.Clases;

namespace Sistema_Totem.Vista.Requerimientos
{
    public partial class BuscarRequerimiento : System.Web.UI.Page,
        IContratoConsultarRequerimiento
    {
        #region Atributos

        /// <summary>
        /// Instancia del Presentador Consultar Requerimiento.
        /// </summary>
        private PresentadorConsultarRequerimiento _presentadorConsultarRequerimiento;

        #endregion Atributos

        /// <summary>
        /// Metodo de inicio
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Sesion["usuario"] == null || Sesion["proyecto"] == null || (Sesion["usuario"] as Usuario).TipoUsuario == "Administrador")
                Response.Redirect("../Login/login.aspx");
            else
            {
                if (!IsPostBack)
                {
                    _presentadorConsultarRequerimiento = new PresentadorConsultarRequerimiento(this);
                    Session["Lista"] = _presentadorConsultarRequerimiento.BuscarDocumentosRequerimiento();
                    _presentadorConsultarRequerimiento.OcultarColumna();
                }
            }
        }

        
        /// <summary>
        /// Método que realiza la acción del VerDetalles del 
        /// requerimiento seleccionado.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewBuscarRequerimiento_SelectIndexChange(object sender, EventArgs e)
        {
            GridViewRow row = GridViewBuscarRequerimiento.SelectedRow;
            int idReque = Convert.ToInt32(row.Cells[0].Text);
            _presentadorConsultarRequerimiento = new PresentadorConsultarRequerimiento(this);
            Session["ObjetoReque"] = _presentadorConsultarRequerimiento.VerDetalleGV(idReque, Session["Lista"]);
            Response.Redirect("../Requerimientos/VerDetalle.aspx");
        }

        /// <summary>
        /// Metodo que realiza la accion del boton del motor de busqueda.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ButtonBuscar(object sender, EventArgs e)
        {
            string nombreRequerimiento = BuscarRequerimientos.Text;
            _presentadorConsultarRequerimiento = new PresentadorConsultarRequerimiento(this);
            _presentadorConsultarRequerimiento.buscarRequerimiento(Session["Lista"], nombreRequerimiento);
        }

        #region Implementación IContratoConsultarRequerimiento

        /// <summary>
        /// Implementación del método GVBuscarRequerimiento
        /// </summary>
        public GridView GVBuscarRequerimiento
        {
            get { return GridViewBuscarRequerimiento; }
        }

        /// <summary>
        /// Implementación del método MensajeError.
        /// </summary>
        public Label MensajeError
        {
            get { return mensaje; }
        }

        /// <summary>
        /// Implementación del método BuscarRequqrimiento.
        /// </summary>
        public TextBox BuscarRequerimientos
        {
            get { return TextBoxBuscar; }
        }

        /// <summary>
        /// Implentacion del metodo Sesion
        /// </summary>
        public HttpSessionState Sesion
        {
            get { return Session; }
        }       

        #endregion Implementación IContratoConsultarRequerimiento
    }
}